From bf3e94d5f6ae45d02d30f4df79125629d5c6d4da Mon Sep 17 00:00:00 2001 From: Keir Fraser Date: Tue, 5 Feb 2008 15:50:59 +0000 Subject: [PATCH] x86_emulate: fix side-effect macro call. Signed-off-by: Samuel Thibault --- xen/arch/x86/x86_emulate.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/xen/arch/x86/x86_emulate.c b/xen/arch/x86/x86_emulate.c index bf867a7b56..ee0118a7b3 100644 --- a/xen/arch/x86/x86_emulate.c +++ b/xen/arch/x86/x86_emulate.c @@ -550,7 +550,8 @@ do { \ #define jmp_rel(rel) \ do { \ - _regs.eip += (int)(rel); \ + int _rel = (int)(rel); \ + _regs.eip += _rel; \ if ( !mode_64bit() ) \ _regs.eip = ((op_bytes == 2) \ ? (uint16_t)_regs.eip : (uint32_t)_regs.eip); \ @@ -2785,9 +2786,11 @@ x86_emulate( break; } - case 0xeb: /* jmp (short) */ - jmp_rel(insn_fetch_type(int8_t)); + case 0xeb: /* jmp (short) */ { + int rel = insn_fetch_type(int8_t); + jmp_rel(rel); break; + } case 0xf1: /* int1 (icebp) */ src.val = EXC_DB; -- 2.30.2